#include<bits/stdc++.h>

using namespace std;
const int maxn = 1000;


/**
 * 大整数输入
 * @param a
 */
void input_bigint(int a[]) {
    char s[10000];
    cin >> s;
    for (int i = strlen(s) - 1, j = 0; i >= 0; i--, j++) {
        a[j] = s[i] - '0';
    }
}

/**
 * 大整数打印函数
 * @param a
 */
void print_bigint(int a[]) {
    int i = maxn - 1;
    while (i > 0 && a[i] == 0)i--;
    for (; i >= 0; i--) {
        cout << a[i];
    }
    cout << endl;
}

/**
 * 大整数乘法 c=a*b
 * @param a 第一个大整数数组，存储大整数的每一位数字，低位在前，高位在后
 * @param b 第二个大整数数组，存储大整数的每一位数字，低位在前，高位在后
 * @param c 存储相乘结果的大整数数组，低位在前，高位在后
 */
void mul(int a[], int b[], int c[]) {
    // 两层嵌套的 for 循环，用于执行大整数乘法的核心计算
    for (int i = 0; i < maxn / 2; i++)
        for (int j = 0; j < maxn / 2; j++) {
            // 将 a[i] 和 b[j] 相乘的结果累加到 c[i + j] 中
            c[i + j] += a[i] * b[j];
        }
    // 存储进位值
    int carry = 0;
    // 遍历结果数组，处理进位
    for (int i = 0; i < maxn; i++) {
        // 将进位值累加到当前位
        c[i] += carry;
        // 计算进位
        carry = (c[i]) / 10;
        // 存储当前位的结果，只保留个位数
        c[i] %= 10;
    }
}


int main() {

    int a[maxn] = {0};
    int b[maxn] = {0};
    int c[maxn] = {0};
    input_bigint(a);
    input_bigint(b);
    mul(a, b, c);
    print_bigint(c);
    return 0;
}

